﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
	int main1()
	{
		int arr[10] = { 0 };
		int num = 100;
		char c = 'w';
		int i = 0;
		for (i = 0; i < 10; i++)
		{
			arr[i] = i;
		}
		return 0;
	}

//求 1!+ 2!+ 3!+ 4!+ ...10!的和
//4! = 1*2*3*4
//5! = 1*2*3*4*5
//n! = 1*2*3*4*5*……*n
//int main()
//{
//	int n = 5;
//	int ret = 1;
//	int sum = 0;
//	for (int n = 0; n < 4; n++)//求1!+2！+……+n!
//	{
//		ret = 1;
//		for (int i = 0; i <= n; n++)
//		{
//			ret *= n;
//		}
//		sum += ret;
//	}
//	printf(" %d\n", sum);
//	return 0;
//}
//	

int main2()
{
	int n = 5;
	int ret = 1;
	int sum = 0;
	for (int n = 1; n < 4; n++)//求1!+2！+……+n!
	{
		ret *= n;
		sum += ret;
	}
	printf(" %d\n", sum);
	return 0;
}

//在VS2022、X86、Debug 的环境下，编译器不做任何优化的话，下⾯代码执⾏的结果是啥？
//与环境有关（x86,x64）
int main()
{
	int i = 0;//局部变量—>放在栈区
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//局部变量—>放在栈区
	//栈区：局部变量地址使用 高——>低
	// 数组下标的由低到高——>地址由低——>高
	//int i = 0;//不会导致死循环，但一般先定义局部变量
	for (i = 0; i <= 12; i++)//数组越界
	{
		arr[i] = 0;//非法访问
		printf("hehe\n");
	}
	//结果，死循环打印hehe
	return 0;
}
